import userapi from './config/api/userapi' // 引入api接口管理文件
var WxNotificationCenter = require("./config/WxNotificationCenter");

App({
  onLaunch() {
    //获取当前设备信息
    wx.getSystemInfo({
      success: res => {
        console.log(res);
        this.globalData.bottomLift = res.screenHeight - res.safeArea.bottom;
        this.globalData.windowHeight = res.windowHeight;
      },
      fail(err) {
        console.log(err);
      }
    })

    let vm = this;
    let that = this;
    WxNotificationCenter.addNotification("clickloginsuccess", that.clicklogin, that);

    // 登录
    wx.login({
      success: res => {
        // 发送 res.code 到后台换取 openId, sessionKey, unionId
        let code = res.code;
        userapi.getOpenId({
          "code": code
        }, function (res) {
          let data = res.data.data;
          vm.globalData.openid = data.openid;
          wx.setStorage({
            key: "openid",
            data: data.openid
          })
          let islogin = false;
          if (data.status == '1') {
            islogin = true;
          }
          vm.globalData.islogin = islogin;
          if (islogin) {
            //获取权限等
            vm.clicklogin();
          }
        })
      }
    })
  },
  clicklogin() {
    let vm = this;
    userapi.getDataByOpenId({
      "openId": this.globalData.openid,
    }, function (res) {
      wx.hideLoading({
        success: (res) => {},
      })
      if (!res.data.data) {
        // vm.gotologin();
      } else {
        vm.globalData.userInfo = res.data.data;
        vm.globalData.islogin = true;
        vm.handleFun(res.data.data.ruserRoles)
        // 通知登录成功
        WxNotificationCenter.postNotificationName("loginsuccess");
      }
    })
  },

  // 处理功能权限
  handleFun(ruserRoles) {
    // 先暂时都能看到权限，后续再把下面注释放开
    // this.globalData.funList.forEach((item) => {
    //   item.auth = true
    // })
    ruserRoles.every((item) => {
      if (item.roleId == 1 || item.roleId == 5) {
        // 管理员和审核员，全部权限
        this.globalData.funList.forEach((item) => {
          item.auth = true
        })
        return false
      }
      if (item.roleId == 2) { // 职员
        this.handleFunList(['会议室预约', '车辆预约', '食堂', '预约记录', '订单列表', "领导邮箱","任务管理"])
      } else if (item.roleId == 3) { // 司机
        this.handleFunList(['会议室预约', '车辆预约', '食堂', '预约记录', '订单列表', "领导邮箱","任务管理"])
      } else if (item.roleId == 4) { // 商家
        this.handleFunList(['食堂', '订单列表', '商品管理', "领导邮箱","任务管理"])
      }
      return true
    })
  },
  handleFunList(menuList) {
    this.globalData.funList.forEach((item, index) => {
      if (item.auth) return
      menuList.forEach((menuItem) => {
        if (menuItem == item.funName) {
          item.auth = true
        }
      })
    })
  },
  // 检查菜单权限
  checkFun(name) {
    return true
    let auth;
    console.log(this.globalData.funList);
    for (let i of this.globalData.funList) {
      if (i.funName == name) {
        auth = i.auth
      }
    }
    if (!auth) {
      wx.showToast({
        title: '暂无权限',
        icon: 'none'
      })
      return false
    }
    return true
  },
  globalData: {
    bottomLift: 0,
    windowHeight: 0,
    userInfo: null,
    openid: null,
    islogin: false,
    funList: [{
        'auth': false,
        'funName': '会议室预约'
      },
      {
        'auth': false,
        'funName': '车辆预约'
      },
      {
        'auth': false,
        'funName': '外卖'
      },
      {
        'auth': false,
        'funName': '预约记录'
      },
      {
        'auth': false,
        'funName': '订单列表'
      },
      {
        'auth': false,
        'funName': '会议室管理'
      },
      {
        'auth': false,
        'funName': '商品管理'
      },
      {
        'auth': false,
        'funName': '车辆管理'
      },
      {
        'auth': false,
        'funName': '司机管理'
      },
      {
        'auth': false,
        'funName': '用户管理'
      },
      {
        'auth': false,
        'funName': '订单核批'
      },
      {
        'auth': false,
        'funName': '车辆预约审核'
      },
      {
        'auth': false,
        'funName': '领导邮箱'
      },
      {
        'auth': false,
        'funName': '任务管理'
      },
    ]
  }
})